/*
 * ResultSetUpdatableDemo2.java
 *
 * Created on 7 de abril de 2005, 19:20
 */

package jdbc_04;
import jdbc_01.Conexion;

public class ResultSetUpdatableInsertDemo {
    
    Conexion con;
    java.sql.Statement stmt;
    java.sql.ResultSet rset;
        
    ResultSetUpdatableInsertDemo() {
        Conexion.driverOdbc();
        con = new Conexion("empleados", "empleados", "empleados");
        if (con.abrirConexion()) {
            ingresaDatos();
            muestraDatos();
            con.cerrarConexion();
        }
    }
    
    void ingresaDatos(){
        
        try {
            stmt = con.getCon().createStatement(
                    java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, 
                    java.sql.ResultSet.CONCUR_UPDATABLE);
            
            rset = stmt.executeQuery("select * from proyectos");
            
            rset.moveToInsertRow();
            /* ingresa una fila */
            rset.updateInt(1, 4);
            rset.updateString(2, "Proyecto D");
            rset.insertRow();
            /* ingresa una fila */
            rset.updateInt(1, 5);
            rset.updateString(2, "Proyecto E");
            rset.insertRow();            

        } catch (java.sql.SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
    
    void muestraDatos(){
        javax.swing.JTextArea jta = new javax.swing.JTextArea(10,40);
        try {
            java.sql.ResultSetMetaData rsmd = rset.getMetaData();
            for (int i = 1; i <= rsmd.getColumnCount(); i++) {
                jta.append(rsmd.getColumnName(i).toUpperCase());
                jta.append("\t");
            }
            jta.append("\n");
            
            rset.beforeFirst();
            while (rset.next()) {
                for (int i = 1; i <= rsmd.getColumnCount(); i++) {
                    jta.append(rset.getString(i).trim());
                    jta.append("\t");
                }
                jta.append("\n");
            }
            
            rset.close();    
            stmt.close();

        } catch (java.sql.SQLException e) {
            jta.append("\n" + e.getMessage() + "\n");
        } finally {
            javax.swing.JOptionPane.showMessageDialog(null, 
                        new javax.swing.JScrollPane(jta));
        }        
    }    
    
    public static void main(String[] args) {
        new ResultSetUpdatableInsertDemo();
        System.exit(0);
    }
    
}
